// Company Roadmap Timeline Dataset
// One year of data with events spanning across several weeks/months
// Resources are the various teams

import { addDays } from 'date-fns/addDays';
import { addMonths } from 'date-fns/addMonths';

// Timeline starts July 1, 2025
export const defaultVisibleDate = new Date('2025-07-01T00:00:00');

// Helper to create dates relative to the start
const date = (monthOffset, day) => {
  const baseDate = addMonths(defaultVisibleDate, monthOffset);
  return addDays(baseDate, day - 1);
};

export const resources = [
  { title: 'Product', id: 'product', eventColor: 'violet' },
  { title: 'Design', id: 'design', eventColor: 'pink' },
  { title: 'Engineering', id: 'engineering', eventColor: 'blue' },
  { title: 'QA', id: 'qa', eventColor: 'jade' },
  { title: 'DevOps', id: 'devops', eventColor: 'cyan' },
  { title: 'Marketing', id: 'marketing', eventColor: 'orange' },
  { title: 'Sales', id: 'sales', eventColor: 'lime' },
  { title: 'Customer Success', id: 'customer-success', eventColor: 'indigo' },
  { title: 'HR', id: 'hr', eventColor: 'red' },
  { title: 'Finance', id: 'finance', eventColor: 'mauve' },
];

export const initialEvents = [
  // ============================================
  // PRODUCT TEAM (25 events)
  // ============================================
  // Q3 Planning Phase (July)
  {
    id: 'product-1',
    start: date(0, 1),
    end: date(0, 5),
    title: 'Q3 Strategic Planning',
    resource: 'product',
    allDay: true,
  },
  {
    id: 'product-2',
    start: date(0, 7),
    end: date(0, 11),
    title: 'Roadmap Review & Prioritization',
    resource: 'product',
    allDay: true,
  },
  {
    id: 'product-3',
    start: date(0, 14),
    end: date(0, 18),
    title: 'Customer Research Synthesis',
    resource: 'product',
    allDay: true,
  },
  {
    id: 'product-4',
    start: date(0, 21),
    end: date(0, 31),
    title: 'Feature Specification: Analytics Dashboard',
    resource: 'product',
    allDay: true,
  },
  // Q3 Execution (August-September)
  {
    id: 'product-5',
    start: date(1, 1),
    end: date(1, 15),
    title: 'Mobile App PRD',
    resource: 'product',
    allDay: true,
  },
  {
    id: 'product-6',
    start: date(1, 18),
    end: date(2, 5),
    title: 'API V3 Specification',
    resource: 'product',
    allDay: true,
  },
  {
    id: 'product-7',
    start: date(2, 8),
    end: date(2, 19),
    title: 'Integration Partners Requirements',
    resource: 'product',
    allDay: true,
  },
  {
    id: 'product-8',
    start: date(2, 22),
    end: date(2, 30),
    title: 'Q4 Planning Preparation',
    resource: 'product',
    allDay: true,
  },
  // Q4 Planning (October)
  {
    id: 'product-9',
    start: date(3, 1),
    end: date(3, 10),
    title: 'Q4 Strategic Planning',
    resource: 'product',
    allDay: true,
  },
  {
    id: 'product-10',
    start: date(3, 14),
    end: date(3, 25),
    title: 'Annual Review Documentation',
    resource: 'product',
    allDay: true,
  },
  // Q4 Execution (November-December)
  {
    id: 'product-11',
    start: date(4, 1),
    end: date(4, 14),
    title: 'Enterprise Features PRD',
    resource: 'product',
    allDay: true,
  },
  {
    id: 'product-12',
    start: date(4, 17),
    end: date(5, 6),
    title: 'Security Audit Planning',
    resource: 'product',
    allDay: true,
  },
  {
    id: 'product-13',
    start: date(5, 9),
    end: date(5, 20),
    title: '2026 Roadmap Draft',
    resource: 'product',
    allDay: true,
  },
  // Q1 2026 (January-March)
  {
    id: 'product-14',
    start: date(6, 6),
    end: date(6, 17),
    title: 'Q1 Kickoff & Goal Setting',
    resource: 'product',
    allDay: true,
  },
  {
    id: 'product-15',
    start: date(6, 20),
    end: date(7, 7),
    title: 'AI Features Specification',
    resource: 'product',
    allDay: true,
  },
  {
    id: 'product-16',
    start: date(7, 10),
    end: date(7, 28),
    title: 'Platform Redesign PRD',
    resource: 'product',
    allDay: true,
  },
  {
    id: 'product-17',
    start: date(8, 3),
    end: date(8, 14),
    title: 'Accessibility Audit Review',
    resource: 'product',
    allDay: true,
  },
  {
    id: 'product-18',
    start: date(8, 17),
    end: date(8, 28),
    title: 'Performance Benchmarks',
    resource: 'product',
    allDay: true,
  },
  // Q2 2026 (April-June)
  {
    id: 'product-19',
    start: date(9, 1),
    end: date(9, 11),
    title: 'Q2 Planning Sprint',
    resource: 'product',
    allDay: true,
  },
  {
    id: 'product-20',
    start: date(9, 14),
    end: date(9, 30),
    title: 'Customer Advisory Board Prep',
    resource: 'product',
    allDay: true,
  },
  {
    id: 'product-21',
    start: date(10, 1),
    end: date(10, 15),
    title: 'Marketplace Strategy',
    resource: 'product',
    allDay: true,
  },
  {
    id: 'product-22',
    start: date(10, 18),
    end: date(10, 31),
    title: 'Self-Service Portal PRD',
    resource: 'product',
    allDay: true,
  },
  {
    id: 'product-23',
    start: date(11, 1),
    end: date(11, 12),
    title: 'Analytics Revamp Planning',
    resource: 'product',
    allDay: true,
  },
  {
    id: 'product-24',
    start: date(11, 15),
    end: date(11, 25),
    title: 'H2 2026 Roadmap',
    resource: 'product',
    allDay: true,
  },
  {
    id: 'product-25',
    start: date(11, 26),
    end: date(11, 30),
    title: 'Mid-Year Review',
    resource: 'product',
    allDay: true,
  },
  // ============================================
  // DESIGN TEAM (15 events)
  // ============================================
  {
    id: 'design-1',
    start: date(0, 8),
    end: date(0, 26),
    title: 'Dashboard Redesign',
    resource: 'design',
    allDay: true,
  },
  {
    id: 'design-2',
    start: date(1, 4),
    end: date(1, 29),
    title: 'Mobile App UI/UX',
    resource: 'design',
    allDay: true,
  },
  {
    id: 'design-3',
    start: date(2, 1),
    end: date(2, 12),
    title: 'Design System Update V2',
    resource: 'design',
    allDay: true,
  },
  {
    id: 'design-4',
    start: date(2, 15),
    end: date(3, 4),
    title: 'Onboarding Flow Redesign',
    resource: 'design',
    allDay: true,
  },
  {
    id: 'design-5',
    start: date(3, 7),
    end: date(3, 18),
    title: 'Icon Library Refresh',
    resource: 'design',
    allDay: true,
  },
  {
    id: 'design-6',
    start: date(3, 21),
    end: date(4, 8),
    title: 'Enterprise Theme',
    resource: 'design',
    allDay: true,
  },
  {
    id: 'design-7',
    start: date(4, 11),
    end: date(4, 29),
    title: 'Dark Mode Implementation',
    resource: 'design',
    allDay: true,
  },
  {
    id: 'design-8',
    start: date(5, 1),
    end: date(5, 19),
    title: 'Accessibility Improvements',
    resource: 'design',
    allDay: true,
  },
  {
    id: 'design-9',
    start: date(6, 6),
    end: date(6, 24),
    title: 'Component Library V3',
    resource: 'design',
    allDay: true,
  },
  {
    id: 'design-10',
    start: date(7, 3),
    end: date(7, 21),
    title: 'Admin Panel Redesign',
    resource: 'design',
    allDay: true,
  },
  {
    id: 'design-11',
    start: date(8, 1),
    end: date(8, 14),
    title: 'Email Templates',
    resource: 'design',
    allDay: true,
  },
  {
    id: 'design-12',
    start: date(9, 7),
    end: date(9, 25),
    title: 'Marketing Website Refresh',
    resource: 'design',
    allDay: true,
  },
  {
    id: 'design-13',
    start: date(10, 1),
    end: date(10, 19),
    title: 'Illustration Library',
    resource: 'design',
    allDay: true,
  },
  {
    id: 'design-14',
    start: date(10, 22),
    end: date(11, 7),
    title: 'Motion Design Guidelines',
    resource: 'design',
    allDay: true,
  },
  {
    id: 'design-15',
    start: date(11, 10),
    end: date(11, 28),
    title: 'Brand Evolution',
    resource: 'design',
    allDay: true,
  },
  // ============================================
  // ENGINEERING TEAM (20 events)
  // ============================================
  {
    id: 'eng-1',
    start: date(0, 1),
    end: date(1, 15),
    title: 'Analytics Dashboard Development',
    resource: 'engineering',
    allDay: true,
  },
  {
    id: 'eng-2',
    start: date(1, 18),
    end: date(2, 30),
    title: 'Mobile App Backend',
    resource: 'engineering',
    allDay: true,
  },
  {
    id: 'eng-3',
    start: date(3, 1),
    end: date(3, 31),
    title: 'API V3 Development',
    resource: 'engineering',
    allDay: true,
  },
  {
    id: 'eng-4',
    start: date(4, 1),
    end: date(4, 21),
    title: 'Performance Optimization Sprint',
    resource: 'engineering',
    allDay: true,
  },
  {
    id: 'eng-5',
    start: date(4, 24),
    end: date(5, 20),
    title: 'Security Hardening',
    resource: 'engineering',
    allDay: true,
  },
  {
    id: 'eng-6',
    start: date(6, 6),
    end: date(7, 14),
    title: 'Platform Rewrite Phase 1',
    resource: 'engineering',
    allDay: true,
  },
  {
    id: 'eng-7',
    start: date(7, 17),
    end: date(8, 28),
    title: 'Platform Rewrite Phase 2',
    resource: 'engineering',
    allDay: true,
  },
  {
    id: 'eng-8',
    start: date(9, 1),
    end: date(9, 30),
    title: 'AI Feature Integration',
    resource: 'engineering',
    allDay: true,
  },
  {
    id: 'eng-9',
    start: date(10, 1),
    end: date(10, 31),
    title: 'Marketplace Development',
    resource: 'engineering',
    allDay: true,
  },
  {
    id: 'eng-10',
    start: date(11, 1),
    end: date(11, 30),
    title: 'Self-Service Portal',
    resource: 'engineering',
    allDay: true,
  },
  // Shorter engineering tasks (overlapping)
  {
    id: 'eng-11',
    start: date(0, 15),
    end: date(0, 22),
    title: 'Technical Debt Sprint',
    resource: 'engineering',
    allDay: true,
  },
  {
    id: 'eng-12',
    start: date(1, 1),
    end: date(1, 7),
    title: 'Code Review Week',
    resource: 'engineering',
    allDay: true,
  },
  {
    id: 'eng-13',
    start: date(2, 8),
    end: date(2, 15),
    title: 'Documentation Sprint',
    resource: 'engineering',
    allDay: true,
  },
  {
    id: 'eng-14',
    start: date(3, 14),
    end: date(3, 21),
    title: 'Hackathon Week',
    resource: 'engineering',
    allDay: true,
  },
  {
    id: 'eng-15',
    start: date(5, 1),
    end: date(5, 7),
    title: 'Tech Stack Evaluation',
    resource: 'engineering',
    allDay: true,
  },
  {
    id: 'eng-16',
    start: date(6, 13),
    end: date(6, 20),
    title: 'Migration Planning',
    resource: 'engineering',
    allDay: true,
  },
  {
    id: 'eng-17',
    start: date(8, 15),
    end: date(8, 22),
    title: 'Load Testing',
    resource: 'engineering',
    allDay: true,
  },
  {
    id: 'eng-18',
    start: date(9, 14),
    end: date(9, 21),
    title: 'Dependency Updates',
    resource: 'engineering',
    allDay: true,
  },
  {
    id: 'eng-19',
    start: date(10, 10),
    end: date(10, 17),
    title: 'CI/CD Improvements',
    resource: 'engineering',
    allDay: true,
  },
  {
    id: 'eng-20',
    start: date(11, 15),
    end: date(11, 22),
    title: 'Year-End Code Freeze',
    resource: 'engineering',
    allDay: true,
  },
  // ============================================
  // QA TEAM (12 events)
  // ============================================
  {
    id: 'qa-1',
    start: date(0, 21),
    end: date(1, 7),
    title: 'Analytics Dashboard Testing',
    resource: 'qa',
    allDay: true,
  },
  {
    id: 'qa-2',
    start: date(1, 25),
    end: date(2, 14),
    title: 'Mobile App Testing',
    resource: 'qa',
    allDay: true,
  },
  {
    id: 'qa-3',
    start: date(2, 22),
    end: date(3, 7),
    title: 'API V3 Testing',
    resource: 'qa',
    allDay: true,
  },
  {
    id: 'qa-4',
    start: date(3, 21),
    end: date(4, 4),
    title: 'Integration Testing Phase',
    resource: 'qa',
    allDay: true,
  },
  {
    id: 'qa-5',
    start: date(4, 14),
    end: date(4, 28),
    title: 'Security Testing',
    resource: 'qa',
    allDay: true,
  },
  {
    id: 'qa-6',
    start: date(5, 8),
    end: date(5, 22),
    title: 'Regression Testing',
    resource: 'qa',
    allDay: true,
  },
  {
    id: 'qa-7',
    start: date(6, 27),
    end: date(7, 10),
    title: 'Platform V2 Testing',
    resource: 'qa',
    allDay: true,
  },
  {
    id: 'qa-8',
    start: date(8, 1),
    end: date(8, 14),
    title: 'Performance Testing',
    resource: 'qa',
    allDay: true,
  },
  {
    id: 'qa-9',
    start: date(8, 22),
    end: date(9, 7),
    title: 'AI Feature Testing',
    resource: 'qa',
    allDay: true,
  },
  {
    id: 'qa-10',
    start: date(9, 21),
    end: date(10, 7),
    title: 'Marketplace Testing',
    resource: 'qa',
    allDay: true,
  },
  {
    id: 'qa-11',
    start: date(10, 21),
    end: date(11, 7),
    title: 'Self-Service Portal Testing',
    resource: 'qa',
    allDay: true,
  },
  {
    id: 'qa-12',
    start: date(11, 14),
    end: date(11, 28),
    title: 'Year-End Release Testing',
    resource: 'qa',
    allDay: true,
  },
  // ============================================
  // DEVOPS TEAM (10 events)
  // ============================================
  {
    id: 'devops-1',
    start: date(0, 1),
    end: date(0, 14),
    title: 'Infrastructure Assessment',
    resource: 'devops',
    allDay: true,
  },
  {
    id: 'devops-2',
    start: date(1, 1),
    end: date(1, 21),
    title: 'Kubernetes Migration',
    resource: 'devops',
    allDay: true,
  },
  {
    id: 'devops-3',
    start: date(2, 1),
    end: date(2, 14),
    title: 'CI/CD Pipeline Overhaul',
    resource: 'devops',
    allDay: true,
  },
  {
    id: 'devops-4',
    start: date(3, 1),
    end: date(3, 21),
    title: 'Monitoring & Alerting Setup',
    resource: 'devops',
    allDay: true,
  },
  {
    id: 'devops-5',
    start: date(4, 1),
    end: date(4, 14),
    title: 'Disaster Recovery Planning',
    resource: 'devops',
    allDay: true,
  },
  {
    id: 'devops-6',
    start: date(5, 1),
    end: date(5, 21),
    title: 'Security Infrastructure',
    resource: 'devops',
    allDay: true,
  },
  {
    id: 'devops-7',
    start: date(7, 1),
    end: date(7, 28),
    title: 'Multi-Region Deployment',
    resource: 'devops',
    allDay: true,
  },
  {
    id: 'devops-8',
    start: date(9, 1),
    end: date(9, 14),
    title: 'Cost Optimization',
    resource: 'devops',
    allDay: true,
  },
  {
    id: 'devops-9',
    start: date(10, 1),
    end: date(10, 14),
    title: 'Auto-Scaling Implementation',
    resource: 'devops',
    allDay: true,
  },
  {
    id: 'devops-10',
    start: date(11, 1),
    end: date(11, 21),
    title: 'Infrastructure as Code',
    resource: 'devops',
    allDay: true,
  },
  // ============================================
  // MARKETING TEAM (12 events)
  // ============================================
  {
    id: 'marketing-1',
    start: date(0, 1),
    end: date(0, 21),
    title: 'Q3 Campaign Planning',
    resource: 'marketing',
    allDay: true,
  },
  {
    id: 'marketing-2',
    start: date(0, 22),
    end: date(1, 15),
    title: 'Product Launch: Analytics',
    resource: 'marketing',
    allDay: true,
  },
  {
    id: 'marketing-3',
    start: date(1, 18),
    end: date(2, 7),
    title: 'Conference Season Prep',
    resource: 'marketing',
    allDay: true,
  },
  {
    id: 'marketing-4',
    start: date(2, 15),
    end: date(3, 7),
    title: 'Mobile App Launch Campaign',
    resource: 'marketing',
    allDay: true,
  },
  {
    id: 'marketing-5',
    start: date(3, 8),
    end: date(3, 28),
    title: 'Q4 Campaign Planning',
    resource: 'marketing',
    allDay: true,
  },
  {
    id: 'marketing-6',
    start: date(4, 1),
    end: date(4, 28),
    title: 'Holiday Campaign',
    resource: 'marketing',
    allDay: true,
  },
  {
    id: 'marketing-7',
    start: date(5, 1),
    end: date(5, 14),
    title: 'Year-End Review',
    resource: 'marketing',
    allDay: true,
  },
  {
    id: 'marketing-8',
    start: date(6, 6),
    end: date(6, 28),
    title: 'Q1 2026 Planning',
    resource: 'marketing',
    allDay: true,
  },
  {
    id: 'marketing-9',
    start: date(7, 1),
    end: date(7, 21),
    title: 'Brand Refresh Campaign',
    resource: 'marketing',
    allDay: true,
  },
  {
    id: 'marketing-10',
    start: date(8, 1),
    end: date(8, 28),
    title: 'Spring Launch Campaign',
    resource: 'marketing',
    allDay: true,
  },
  {
    id: 'marketing-11',
    start: date(9, 1),
    end: date(9, 21),
    title: 'Partnership Announcements',
    resource: 'marketing',
    allDay: true,
  },
  {
    id: 'marketing-12',
    start: date(10, 1),
    end: date(11, 7),
    title: 'Annual Conference',
    resource: 'marketing',
    allDay: true,
  },
  // ============================================
  // SALES TEAM (10 events)
  // ============================================
  {
    id: 'sales-1',
    start: date(0, 1),
    end: date(0, 14),
    title: 'Q3 Quota Setting',
    resource: 'sales',
    allDay: true,
  },
  {
    id: 'sales-2',
    start: date(0, 21),
    end: date(1, 7),
    title: 'Enterprise Sales Training',
    resource: 'sales',
    allDay: true,
  },
  {
    id: 'sales-3',
    start: date(2, 1),
    end: date(2, 21),
    title: 'Partner Program Launch',
    resource: 'sales',
    allDay: true,
  },
  {
    id: 'sales-4',
    start: date(3, 1),
    end: date(3, 14),
    title: 'Q4 Quota Setting',
    resource: 'sales',
    allDay: true,
  },
  {
    id: 'sales-5',
    start: date(4, 1),
    end: date(4, 30),
    title: 'End of Year Push',
    resource: 'sales',
    allDay: true,
  },
  {
    id: 'sales-6',
    start: date(5, 15),
    end: date(5, 31),
    title: 'Year-End Deals Closing',
    resource: 'sales',
    allDay: true,
  },
  {
    id: 'sales-7',
    start: date(6, 6),
    end: date(6, 20),
    title: 'Q1 2026 Planning',
    resource: 'sales',
    allDay: true,
  },
  {
    id: 'sales-8',
    start: date(7, 1),
    end: date(7, 14),
    title: 'New Product Training',
    resource: 'sales',
    allDay: true,
  },
  {
    id: 'sales-9',
    start: date(9, 1),
    end: date(9, 14),
    title: 'Q2 Kickoff',
    resource: 'sales',
    allDay: true,
  },
  {
    id: 'sales-10',
    start: date(10, 15),
    end: date(11, 7),
    title: 'Annual Sales Summit',
    resource: 'sales',
    allDay: true,
  },
  // ============================================
  // CUSTOMER SUCCESS TEAM (8 events)
  // ============================================
  {
    id: 'cs-1',
    start: date(0, 7),
    end: date(0, 28),
    title: 'Onboarding Process Redesign',
    resource: 'customer-success',
    allDay: true,
  },
  {
    id: 'cs-2',
    start: date(1, 1),
    end: date(1, 21),
    title: 'Customer Health Score Implementation',
    resource: 'customer-success',
    allDay: true,
  },
  {
    id: 'cs-3',
    start: date(2, 15),
    end: date(3, 7),
    title: 'QBR Season',
    resource: 'customer-success',
    allDay: true,
  },
  {
    id: 'cs-4',
    start: date(4, 1),
    end: date(4, 21),
    title: 'Renewal Campaign',
    resource: 'customer-success',
    allDay: true,
  },
  {
    id: 'cs-5',
    start: date(5, 15),
    end: date(6, 7),
    title: 'Customer Advisory Board',
    resource: 'customer-success',
    allDay: true,
  },
  {
    id: 'cs-6',
    start: date(7, 15),
    end: date(8, 7),
    title: 'NPS Survey & Analysis',
    resource: 'customer-success',
    allDay: true,
  },
  {
    id: 'cs-7',
    start: date(9, 15),
    end: date(10, 7),
    title: 'Success Playbook Update',
    resource: 'customer-success',
    allDay: true,
  },
  {
    id: 'cs-8',
    start: date(11, 1),
    end: date(11, 21),
    title: 'Year-End Customer Appreciation',
    resource: 'customer-success',
    allDay: true,
  },
  // ============================================
  // HR TEAM (8 events)
  // ============================================
  {
    id: 'hr-1',
    start: date(0, 1),
    end: date(0, 21),
    title: 'Q3 Hiring Sprint',
    resource: 'hr',
    allDay: true,
  },
  {
    id: 'hr-2',
    start: date(1, 1),
    end: date(1, 14),
    title: 'Performance Review Cycle',
    resource: 'hr',
    allDay: true,
  },
  {
    id: 'hr-3',
    start: date(2, 15),
    end: date(3, 7),
    title: 'Benefits Open Enrollment',
    resource: 'hr',
    allDay: true,
  },
  {
    id: 'hr-4',
    start: date(4, 1),
    end: date(4, 14),
    title: 'Compensation Review',
    resource: 'hr',
    allDay: true,
  },
  {
    id: 'hr-5',
    start: date(5, 1),
    end: date(5, 14),
    title: 'Year-End Bonuses',
    resource: 'hr',
    allDay: true,
  },
  {
    id: 'hr-6',
    start: date(6, 13),
    end: date(7, 7),
    title: 'Q1 2026 Hiring',
    resource: 'hr',
    allDay: true,
  },
  {
    id: 'hr-7',
    start: date(8, 1),
    end: date(8, 21),
    title: 'Training & Development Program',
    resource: 'hr',
    allDay: true,
  },
  {
    id: 'hr-8',
    start: date(10, 1),
    end: date(10, 21),
    title: 'Employee Engagement Survey',
    resource: 'hr',
    allDay: true,
  },
  // ============================================
  // FINANCE TEAM (6 events)
  // ============================================
  {
    id: 'finance-1',
    start: date(0, 1),
    end: date(0, 14),
    title: 'Q2 Financial Close',
    resource: 'finance',
    allDay: true,
  },
  {
    id: 'finance-2',
    start: date(2, 22),
    end: date(3, 14),
    title: 'Q3 Financial Close',
    resource: 'finance',
    allDay: true,
  },
  {
    id: 'finance-3',
    start: date(4, 1),
    end: date(4, 21),
    title: 'Annual Budget Planning',
    resource: 'finance',
    allDay: true,
  },
  {
    id: 'finance-4',
    start: date(5, 15),
    end: date(6, 14),
    title: 'Year-End Financial Close',
    resource: 'finance',
    allDay: true,
  },
  {
    id: 'finance-5',
    start: date(6, 27),
    end: date(7, 14),
    title: 'Q1 2026 Budget Review',
    resource: 'finance',
    allDay: true,
  },
  {
    id: 'finance-6',
    start: date(8, 22),
    end: date(9, 14),
    title: 'Q1 2026 Financial Close',
    resource: 'finance',
    allDay: true,
  },
];
